package com.lighting.common.core.constants;

import org.springframework.http.HttpStatus;

public enum ErrorCode {

    /**
     * 400 请求参数错误
     */
    BAD_REQUEST(400, String.format("请求参数错误(%s)", HttpStatus.BAD_REQUEST.getReasonPhrase())),

    NOT_LOGIN(401, "登录过期请重新登录"),

    NOT_AUTH(403, "没有权限，请联系管理员！"),

    /**
     * 404 Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
     */
    NOT_FOUND(404, String.format("哎呀，无法找到这个资源啦(%s)", HttpStatus.NOT_FOUND.getReasonPhrase())),

    /**
     * 405 对于请求所标识的资源，不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
     */
    METHOD_NOT_ALLOWED(405, String.format("请换个姿势操作试试(%s)", HttpStatus.METHOD_NOT_ALLOWED.getReasonPhrase())),

    /**
     * 415 不支持的媒体类型
     */
    UNSUPPORTED_MEDIA_TYPE(415, String.format("呀，不支持该媒体类型(%s)", HttpStatus.UNSUPPORTED_MEDIA_TYPE.getReasonPhrase())),

    /**
     * 系统异常 500 服务器的内部错误
     */
    EXCEPTION(500, "系统忙，请稍后再试"),

    /**
     * 系统限流
     */
    TRAFFIC_LIMITING(429, "哎呀，网络拥挤请稍后再试试"),

    /**
     * 业务异常
     */
    BUSINESS_ERROR(513, "可预判的业务异常"),

    RPC_ERROR(510, "呀，网络出问题啦！"),

    ARITHMETIC_ERROR(509, "算术运算异常！");

    private Integer code;
    private String msg;

    ErrorCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}
